﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;


namespace CMS_GYM
{
    public class clsPhieuThuTienBUS
    {
        #region Attribute
        private clsPhieuThuTienDAO PhieuThuDAO = new clsPhieuThuTienDAO();
        #endregion

        /// <summary>
        /// Tim kiem phieu thu
        /// </summary>
        /// <param name="TuNgay"></param>
        /// <param name="DenNgay"></param>
        /// <param name="TuSo"></param>
        /// <param name="DenSo"></param>
        /// <param name="KyHieu"></param>
        /// <param name="NguoiTaoId"></param>
        /// <param name="MaKhachHang"></param>
        /// <param name="TuKhoa"></param>
        /// <param name="LoaiPhieu"></param>
        /// <returns></returns>
        public DataTable TimKiem(DateTime? TuNgay, DateTime? DenNgay, string TuSo, string DenSo, string KyHieu, int? NguoiTaoId, string MaKhachHang, string TuKhoa)
        {
            return PhieuThuDAO.LayBang(TuNgay, DenNgay, TuSo, DenSo, KyHieu, NguoiTaoId, MaKhachHang, TuKhoa, "PhieuThu");
        }

        /// <summary>
        /// tim kiem hoa don va phieu thu
        /// </summary>
        /// <param name="TuNgay"></param>
        /// <param name="DenNgay"></param>
        /// <param name="TuSo"></param>
        /// <param name="DenSo"></param>
        /// <param name="KyHieu"></param>
        /// <param name="NguoiTaoId"></param>
        /// <param name="MaKhachHang"></param>
        /// <param name="TuKhoa"></param>
        /// <param name="LoaiPhieu"></param>
        /// <returns></returns>
        public DataTable TimKiemPhieuGiaoDich(DateTime? TuNgay, DateTime? DenNgay, string TuSo, string DenSo, string KyHieu, int? NguoiTaoId, string MaKhachHang, string TuKhoa, string LoaiPhieu)
        {
            return PhieuThuDAO.LayBang(TuNgay, DenNgay, TuSo, DenSo, KyHieu, NguoiTaoId, MaKhachHang, TuKhoa, LoaiPhieu);
        }

        public DataTable TimKiemPhieuGiaoDichChiTiet(DateTime? TuNgay, DateTime? DenNgay, string TuSo, string DenSo, string KyHieu, int? NguoiTaoId, string MaKhachHang, string TaiKhoanNo, string TaiKhoanCo, string TuKhoa, string LoaiPhieu)
        {
            return PhieuThuDAO.LayBangChiTiet(TuNgay, DenNgay, TuSo, DenSo, KyHieu, NguoiTaoId, MaKhachHang,TaiKhoanNo, TaiKhoanCo, TuKhoa, LoaiPhieu);
        }

        /// <summary>
        /// Lay bang theo so phieu thu va ky hieu
        /// </summary>
        /// <param name="SoPhieuThu"></param>
        /// <param name="KyHieu"></param>
        /// <returns></returns>
        public DataTable LayBang(string SoPhieuThu, string KyHieu)
        {
            return PhieuThuDAO.LayBang(SoPhieuThu, KyHieu);
        }

        public clsPhieuThuTienDTO LayThongTinMotPhieuThu(string SoPhieuThu, string KyHieu)
        {
            return PhieuThuDAO.LayThongMotPhieuThu(SoPhieuThu, KyHieu);
        }

        public DataTable LayBangPhieuThuChiet(string SoPhieuThu, string KyHieu)
        {
            return PhieuThuDAO.LayBangPhieuThuChiet(SoPhieuThu, KyHieu);
        }

        public DataTable LayBangPhieuThuChiet(decimal PhieuThuId)
        {
            return PhieuThuDAO.LayBangPhieuThuChiet(PhieuThuId);
        }

        public Boolean Them(ref clsPhieuThuTienDTO PhieuThu,ref string Error)
        {
            PhieuThu.PhieuThuId = PhieuThuDAO.Them(PhieuThu);
            if (PhieuThu.PhieuThuId == -1)
            {
                Error = "Thêm phiếu thu vào cơ sở dữ liệu không thành công!";
                return false;
            }
            else
            {
                return true;
            }
        }

        /// <summary>
        /// Sua thông tin Phiếu Xuất Bán Sỉ
        /// </summary>
        /// <param name="PhieuXuat">
        /// MaPhieuXuat                  nvarchar(10)
        /// NgayXuat                       smalldatetime
        /// MaNhanVienBanHang     nvarchar(10)
        /// TongTien                        float
        /// DaTra                             float
        /// KhachHang                     nvarchar(255)
        /// LoaiPhieuXuat                 nvarchar(100)
        /// TrangThai                       int
        /// </param>
        public Boolean Sua(clsPhieuThuTienDTO PhieuThu, ref string Error)
        {
            if (PhieuThuDAO.Sua(PhieuThu)== -1)
            {
                Error = "cập nhật phiếu thu vào cơ sở dữ liệu không thành công!";
                return false;
            }
            else
            {
                return true;
            }
        }

        /// <summary>
        /// Xoa mot phieu thu 
        /// </summary>
        /// <param name="PTCT"></param>
        /// <returns></returns>
        public Boolean Xoa(decimal PhieuThuId, ref string Error)
        {
            if (PhieuThuDAO.Xoa(PhieuThuId) == -1)
            {
                Error = "Xóa phiếu thu vào cơ sở dữ liệu không thành công!";
                return false;
            }
            else
            {
                return true;
            }
        }

        /// <summary>
        /// Xoa tam thoi mot phieu thu 
        /// </summary>
        /// <param name="PTCT"></param>
        /// <returns></returns>
        public Boolean XoaTamThoi(decimal PhieuThuId, ref string Error)
        {
            if (PhieuThuDAO.XoaTamThoi(PhieuThuId) == -1)
            {
                Error = "Xóa phiếu thu vào cơ sở dữ liệu không thành công!";
                return false;
            }
            else
            {
                return true;
            }
        }

        /// <summary>
        /// Xoa tam thoi mot phieu thu 
        /// </summary>
        /// <param name="PTCT"></param>
        /// <returns></returns>
        public Boolean XoaTamThoi(string SoPhieuThu, string KyHieu, ref string Error)
        {
            if (PhieuThuDAO.XoaTamThoi(SoPhieuThu, KyHieu) == -1)
            {
                Error = "Xóa phiếu thu vào cơ sở dữ liệu không thành công!";
                return false;
            }
            else
            {
                return true;
            }
        }

        public bool KiemTraTonTai(string SoPhieuThu, string KyHieu)
        {
            return PhieuThuDAO.KiemTraTonTai(SoPhieuThu,KyHieu);
        }

        public DataTable ThongKeDoanhThuTheoLoaiDinhKhoanCo(DateTime? TuNgay, DateTime? DenNgay)
        {
            return PhieuThuDAO.ThongKeDoanhThuTheoLoaiDinhKhoanCo(TuNgay, DenNgay);
        }

        public DataTable ThongKeDoanhThuVaChiPhi(DateTime? TuNgay, DateTime? DenNgay)
        {
            return PhieuThuDAO.ThongKeDoanhThuVaChiPhi(TuNgay, DenNgay);
        }

        public DataTable ThongKeDoanhThuVaChiPhi()
        {
            return PhieuThuDAO.ThongKeDoanhThuVaChiPhi();
        }

        public DataTable ThongKeDoanhThuVaChiPhiTheoNam(DateTime? TuNgay, DateTime? DenNgay)
        {
            return PhieuThuDAO.ThongKeDoanhThuVaChiPhiTheoNam(TuNgay, DenNgay);
        }

    }
}
